package com.lxl.todo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;

/**
 * @Author: luoxianliang
 * @Email: 1322342586@qq.com
 * @CreateTime: 2025-08-13
 * @Description: 有效的括号
 * @Version: 1.0
 * @OtherInfo:
 * 给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串 s ，判断字符串是否有效。
 * 有效字符串需满足：
 * 左括号必须用相同类型的右括号闭合。
 * 左括号必须以正确的顺序闭合。
 * 每个右括号都有一个对应的相同类型的左括号。
 */

public class Solution30 {
    public boolean isValid(String s) {
        char[] charArray = s.toCharArray();
        HashMap<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < charArray.length; i++) {
            if (charArray[i] == '(' || charArray[i] == ')') {
                map.put(charArray[i], i);
            }
        }
        Integer i = map.get('(');
        Integer i1 = map.get(')');
        if (i != null && i1 != null && i < i1) {
            return true;
        }
        return false;
    }

    public static void main(String[] args) {
        Solution30 sol = new Solution30();
        String s = "([)]";
        boolean valid = sol.isValid(s);
        System.out.println("valid = " + valid);
    }
}
